আনসিবল (Ansible)

কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয়

Latest Technologies - আনসিবল (Ansible) - টেমপ্লেট ব্যবহারের ধারণা | NCTB BOOK

Ansible-এ কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয় করা একটি সাধারণ কাজ, বিশেষ করে যখন সার্ভার, অ্যাপ্লিকেশন বা অন্যান্য সার্ভিসগুলোর সেটআপ অটোমেট করতে হয়। এটি করার জন্য Ansible-এ সাধারণত template মডিউল ব্যবহার করা হয়, যেখানে Jinja2 টেম্পলেটের মাধ্যমে কনফিগারেশন ফাইল তৈরি এবং রিমোট হোস্টে ডিপ্লয় করা হয়। এখানে কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয় করার একটি উদাহরণ দেখানো হলো।

ধাপ ১: টেম্পলেট ফাইল তৈরি করা

প্রথমে, আপনার টেম্পলেট ফাইল তৈরি করতে হবে। টেম্পলেট ফাইল সাধারণত templates/ ডিরেক্টরিতে সংরক্ষণ করা হয় এবং এটি Jinja2 সিনট্যাক্স ব্যবহার করে।

উদাহরণ টেম্পলেট ফাইল: templates/nginx.conf.j2

 

server {
    listen {{ http_port }};
    server_name {{ domain_name }};

    location / {
        proxy_pass http://{{ backend_server }};
    }
}

বিশ্লেষণ:

  • এখানে {{ http_port }}, {{ domain_name }}, এবং {{ backend_server }} ভ্যারিয়েবলগুলোর মাধ্যমে ডায়নামিক মান ব্যবহার করা হয়েছে।
  • Ansible প্লেবুক বা ইনভেন্টরি থেকে এই ভ্যারিয়েবলগুলোর মান আসবে।

ধাপ ২: প্লেবুক তৈরি করা

এরপর, আপনি একটি প্লেবুক তৈরি করবেন যেখানে template মডিউল ব্যবহার করে টেম্পলেট ফাইলটি রিমোট হোস্টে ডিপ্লয় করবেন।

উদাহরণ প্লেবুক: deploy_nginx.yml

 

---
- name: Deploy Nginx configuration file
  hosts: webservers
  become: yes
  vars:
    http_port: 80
    domain_name: example.com
    backend_server: 192.168.1.10
  tasks:
    - name: Copy Nginx configuration using template
      template:
        src: templates/nginx.conf.j2
        dest: /etc/nginx/conf.d/nginx.conf
        owner: root
        group: root
        mode: '0644'
    - name: Restart Nginx service
      service:
        name: nginx
        state: restarted

বিশ্লেষণ:

  1. ভ্যারিয়েবল:
    • http_port, domain_name, এবং backend_server ভ্যারিয়েবলগুলো প্লেবুকের vars সেকশনে উল্লেখ করা হয়েছে।
  2. template মডিউল:
    • src: টেম্পলেট ফাইলের পাথ (লোকাল সিস্টেমে)।
    • dest: রিমোট সিস্টেমে টেম্পলেট ফাইলটি কপি করার স্থান।
    • owner, group, এবং mode: টার্গেট ফাইলের মালিকানা এবং পারমিশন সেট করা হয়েছে।
  3. Nginx রিস্টার্ট করা:
    • কনফিগারেশন পরিবর্তনের পরে Nginx সার্ভিস রিস্টার্ট করতে service মডিউল ব্যবহার করা হয়েছে।

ধাপ ৩: প্লেবুক রান করা

এখন, প্লেবুক রান করে কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয় করতে হবে।

 

ansible-playbook -i inventory deploy_nginx.yml
  • -i inventory: এখানে আপনার ইনভেন্টরি ফাইলের পাথ দিতে হবে যা টার্গেট হোস্ট বা হোস্ট গ্রুপ নির্ধারণ করে।

সারাংশ

  • টেম্পলেট ফাইল তৈরি: Jinja2 টেম্পলেট ব্যবহার করে একটি কনফিগারেশন ফাইল তৈরি করা।
  • প্লেবুক তৈরি: template মডিউল ব্যবহার করে টেম্পলেট ফাইলটি রিমোট হোস্টে কপি করা এবং সেট করা।
  • সার্ভিস রিস্টার্ট: কনফিগারেশন পরিবর্তনের পর সার্ভিস রিস্টার্ট করা।

এই পদ্ধতি অনুসরণ করে, আপনি সহজেই কনফিগারেশন ফাইল তৈরি ও ডিপ্লয় করতে পারবেন। Ansible-এর টেম্পলেট মডিউল এবং প্লেবুক ব্যবহারে কনফিগারেশন ম্যানেজমেন্ট সহজ এবং কার্যকর হয়ে ওঠে।

Promotion